/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Hua YY
 * Date: 2024-11-23
 * Time: 12:12
 */
//方法2：用位图思想
class Solution6 {
    public boolean isUnique(String astr) {
        //鸽巢原理优化
        if(astr.length() > 26){
            return false;
        }
        //位图原理
        char[] str = astr.toCharArray();
        int bitMap = 0;
        for(int x : str){
            int move = x - 'a';
            if((bitMap & (1 << move)) == 0){
                //bitMap&0001000只有非0或者0两个结果
                //说明当前bitMap位是0，那就添加进去
                bitMap |= (1 << move);
            }else{
                return false;
            }
        }
        return true;
    }
}

//方法1：hash表
//1:把字符串转化为字符数组
// char[] str = astr.toCharArray();
// //2:把字符扔到hash表中
// Map<Character,Integer> hash = new HashMap<>();
// for(char x : str){
//     //获取hash表中x的value值
//     int num = hash.getOrDefault(x,0);
//     if(num == 0){
//         hash.put(x,hash.getOrDefault(x,0)+1);
//     }else{
//         return false;
//     }
// }
// return true;
public class Test6 {
}
